package dao

import (
	"yundian/internel/app/helper"
	"yundian/internel/app/models/users"
)

// 递归查询 上级代理商或运营商
func GetParentUserInfoById(u *users.UserModel) *users.UserModel {
	if u.ParentID == 0 { // 最高级
		return u
	} else {
		// 分公司、代理商直营网点、运营商
		if u.IsPlace == 0 && u.IsAdmin == 2 { // 运营商
			return u
		} else if u.IsAdmin > helper.TypeNumIsAdminStaff { //所有代理商

			//} else if u.IsPlace == 0 && u.IsAdmin == 3 { // 代理商
			//	return u
			//} else if u.IsPlace == 3 && u.IsAdmin == 3 { // 分公司、直营
			return u
		} else {
			userInfo := NewUserDao().GetUserInfoById(u.ParentID).Unwrap().(*users.UserModel) // 获取上级的信息
			return GetParentUserInfoById(userInfo)
		}
		//log.Println("返回-----------什ID", uInfo.ID)
	}
}

// 获取上级代理商或运营商ID
func GetAgentUserId(isAdmin uint8, userId int) int {
	if isAdmin == helper.TypeNumIsAdminOperator || isAdmin > helper.TypeNumIsAdminStaff { // 代理商或运营商
		return userId
	} else {
		userInfo := NewUserDao().GetUserInfoById(userId).Unwrap().(*users.UserModel)
		uInfo := GetParentUserInfoById(userInfo)
		return uInfo.ID
	}
}

// 获取奖励的代理商信息
func GetLastDrawUserInfo(u *users.UserModel) *users.UserModel {
	if u.IsDraw == 1 { // 开启抽单权益
		return u
	} else { // 关闭查找 上一级代理商
		if u.ParentID == 0 {
			return u
		} else {
			userInfo := NewUserDao().GetUserInfoById(u.ParentID).Unwrap().(*users.UserModel) // 获取上级的信息
			return GetLastDrawUserInfo(userInfo)
		}
	}
	//if u.ParentID == 0 && u.IsAdmin == 2 { // 运营商
	//	return u
	//}
	//if u.IsDraw == 1 { // 开启抽单权益
	//	return u
	//} else { // 关闭查找 上一级代理商
	//	var uInfo *users.UserModel
	//	userInfo := NewUserDao().GetUserInfoById(u.ParentID).Unwrap().(*users.UserModel) // 获取上级的信息
	//	uInfo = GetLastDrawUserInfo(userInfo)
	//	return uInfo
	//}
}
